API Documentation
TreeView.h
1 // TreeView.h
3 //
5 
6 namespace nkWinUi
7 {
11  class TreeView : public Component
12  {
13  public :
14 
18  class Item
19  {
20  public :
21 
25  Item () ;
29  virtual ~Item () ;
30 
37  Item* addChild (Item* child) ;
42  Item* getChild (unsigned int index) const ;
48  void disavowChild (Item* child) ;
49 
55  void setText (const nkMemory::StringView& text) ;
60 
66  void setParentTree (TreeView* parent) ;
70  TreeView* getParentTree () const ;
76  void setParentItem (Item* item) ;
80  Item* getParentItem () const ;
86  void setPrecedingItem (Item* item) ;
90  Item* getPrecedingItem () const ;
91 
99  void setAttachedData (void* data) ;
103  void* getAttachedData () const ;
104 
111  } ;
112 
113  public :
114 
122  TreeView (MainSystem* parentSystem) ;
127 
128  // Getters
133  Item* getItemFromData (void* data) const ;
137  virtual Item* getSelectedItem () = 0 ;
142  virtual Item* getItemAtAbsoluteCursor (const nkMaths::Point& absCoords) = 0 ;
147  virtual Item* getItemAtRelativeCursor (const nkMaths::Point& relCoords) = 0 ;
151  bool getSelectOnRightClick () const ;
155  std::function<void (TreeView*)> getSelectionCallback () const ;
156 
157  // Setters
163  void setSelectionOnRightClick (bool value) ;
171  void setSelectionCallback (std::function<void (TreeView*)> value) ;
172 
182  virtual Item* insertItem (const std::string_view& text, void* data, Item* parent = nullptr, Item* afterThisOne = nullptr) ;
189  virtual void deleteItem (Item* toDelete, bool keepChildrenOnUpper = false) ;
196  virtual void changeItemLabel (Item* toChange, const std::string_view& label) ;
200  virtual void clearItems () ;
201 
207  void selectItemFromItsData (void* data) ;
213  virtual void selectItem (Item* item) = 0 ;
226 
230  virtual void exportIntrospection (nkExport::Node* rootNode) override ;
234  virtual void importClassFromTree (nkExport::Node* rootNode) override ;
235  } ;
236 }
nkWinUi::TreeView::Item::getParentItem
Item * getParentItem() const
nkWinUi::TreeView::Item::setParentItem
void setParentItem(Item *item)
nkWinUi::TreeView::Item::getAttachedData
void * getAttachedData() const
nkWinUi::TreeView::Item::setAttachedData
void setAttachedData(void *data)
nkWinUi::TreeView::getSelectOnRightClick
bool getSelectOnRightClick() const
nkWinUi::TreeView
A graphical tree view window.
Definition: TreeView.h:12
nkWinUi::TreeView::getSelectedItem
virtual Item * getSelectedItem()=0
nkWinUi::TreeView::setSelectionCallback
void setSelectionCallback(std::function< void(TreeView *)> value)
nkWinUi::TreeView::selectItemFromRelativeCursor
void selectItemFromRelativeCursor(const nkMaths::Point &relCoords)
nkWinUi::TreeView::Item
Holds information of a tree view item.
Definition: TreeView.h:19
nkWinUi::TreeView::Item::Item
Item()
nkWinUi::TreeView::changeItemLabel
virtual void changeItemLabel(Item *toChange, const std::string_view &label)
nkWinUi::TreeView::Item::setPrecedingItem
void setPrecedingItem(Item *item)
nkWinUi::TreeView::exportIntrospection
virtual void exportIntrospection(nkExport::Node *rootNode) override
nkWinUi::TreeView::Item::addChild
Item * addChild(Item *child)
nkWinUi::TreeView::Item::getParentTree
TreeView * getParentTree() const
nkWinUi::Component
Base class for any graphical component.
Definition: Component.h:12
nkWinUi::TreeView::getItemAtAbsoluteCursor
virtual Item * getItemAtAbsoluteCursor(const nkMaths::Point &absCoords)=0
nkWinUi::TreeView::importClassFromTree
virtual void importClassFromTree(nkExport::Node *rootNode) override
nkWinUi::TreeView::clearItems
virtual void clearItems()
nkWinUi::TreeView::getSelectionCallback
std::function< void(TreeView *)> getSelectionCallback() const
nkExport::Node
A node in the tree structure representing the data to export / import.
Definition: Node.h:42
nkWinUi::MainSystem
The main system of the component.
Definition: MainSystem.h:18
nkMaths::Point
Represents a 2D Point.
Definition: Point.h:12
nkWinUi::TreeView::TreeView
TreeView(MainSystem *parentSystem)
nkWinUi::TreeView::insertItem
virtual Item * insertItem(const std::string_view &text, void *data, Item *parent=nullptr, Item *afterThisOne=nullptr)
nkWinUi::TreeView::selectItem
virtual void selectItem(Item *item)=0
nkMemory::StringView
Class holding information about a string, with no ownership over the data.
Definition: StringView.h:22
nkWinUi::TreeView::deleteItem
virtual void deleteItem(Item *toDelete, bool keepChildrenOnUpper=false)
nkWinUi::TreeView::Item::~Item
virtual ~Item()
nkWinUi::TreeView::Item::getPrecedingItem
Item * getPrecedingItem() const
nkWinUi::TreeView::Item::disavowChild
void disavowChild(Item *child)
nkWinUi::TreeView::getItemAtRelativeCursor
virtual Item * getItemAtRelativeCursor(const nkMaths::Point &relCoords)=0
nkWinUi::TreeView::selectItemFromItsData
void selectItemFromItsData(void *data)
nkWinUi::TreeView::Item::getText
nkMemory::StringView getText() const
nkWinUi::TreeView::Item::setParentTree
void setParentTree(TreeView *parent)
nkWinUi::TreeView::~TreeView
~TreeView()
nkWinUi
Encompasses all API of component NilkinsWinUi.
Definition: Clipboard.h:7
nkWinUi::TreeView::getItemFromData
Item * getItemFromData(void *data) const
nkWinUi::TreeView::Item::exportIntrospection
void exportIntrospection(nkExport::Node *rootNode)
nkWinUi::TreeView::setSelectionOnRightClick
void setSelectionOnRightClick(bool value)
nkWinUi::TreeView::Item::getChild
Item * getChild(unsigned int index) const
nkWinUi::TreeView::selectItemFromAbsoluteCursor
void selectItemFromAbsoluteCursor(const nkMaths::Point &absCoords)
nkWinUi::TreeView::Item::setText
void setText(const nkMemory::StringView &text)